package main

import (
	"fmt"
	"sort"
)

// map是引用类型
// map的排序: 1.将key放入slice 2.切片排序 3.再遍历slice
func main() {

	detailOfMap()
	sortOfMap()
}

// 排序  1.将key放入slice 2.切片排序 3.再遍历切片
func sortOfMap() {
	fmt.Println("-------------map排序-------------")
	var map00 map[string]string = map[string]string{
		"33": "utemjy",
		"22": "wum4sj",
		"11": "24cjg6",
		"44": "fjfm6k",
	}
	fmt.Println("map=:", map00)

	//将key放入slice
	var kes []string
	for k, _ := range map00 {
		kes = append(kes, k)
	}
	//slice排序
	sort.Strings(kes)
	fmt.Println("kes:", kes)

	for _, k := range kes {
		var v, ok = map00[k]
		if ok {
			fmt.Printf("%s %s \n", k, v)
		}
	}

}

// 引用类型
func detailOfMap() {
	fmt.Println("-------------map引用类型-------------")
	var map1 map[string]string = map[string]string{
		"1": "v1",
		"2": "v2",
		"3": "v3",
		"4": "v4",
	}
	fmt.Println(map1) //map[1:v1 2:v2 3:v3 4:v4]
	modifyMap(map1)
	fmt.Println(map1) //map[1:VVV 2:v2 3:v3 4:v4]
}
func modifyMap(map1 map[string]string) {
	map1["1"] = "VVV"
}
